import requests
from header import HEADERS1
import os
import io
import sys
# 强制标准输出使用UTF-8编码
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')

# ✅ 替换为你的后端地址（与前端接口一致）
url = "http://localhost:8080/checker/list"

# # ✅ 替换为你的 JWT token
# token = "eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiY2hlY2tlciIsImV4cCI6MTc1MzM5MDAwNiwidXNlcklkIjoyfQ.IwmN952uKVgEjannIcqQpVR5PxFT4jDok1fIFf0cRAw"
#
# # ✅ 固定 nonce（模拟重放）
# nonce = "e3ecc599-5f53-4353-a9c8-f21ae9bd9bc2"

# ✅ GET 请求参数（模拟分页 + 模糊搜索）
params = {
    "page": 1,
    "pageSize": 10,
    "fileName": "test"  # 可选
}

# # ✅ 请求头
# headers = {
#     "Authorization": f"Bearer {token}",
#     "X-Nonce": nonce
# }

# ✅ 第一次请求（应该成功）
response1 = requests.get(url, headers=HEADERS1, params=params)
print("🟢 第一次响应:")
print("状态码:", response1.status_code)
print("返回数据:", response1.text)

# ✅ 第二次请求（模拟重放）
response2 = requests.get(url, headers=HEADERS1, params=params)
print("\n🔴 第二次响应（重放攻击模拟）:")
print("状态码:", response2.status_code)
print("返回数据:", response2.text)

# 获取当前文件的绝对路径
# current_file_path = os.path.abspath(__file__)
#
# current_floder_path = ''
#
# for item in current_file_path.split('/')[:-1]:
#     current_floder_path+=item
#     current_floder_path+='/'
# print("当前文件夹绝对路径:", current_floder_path)
current_file_path = os.path.abspath(__file__)
current_floder_path = os.path.dirname(current_file_path) + os.sep  # 自动用当前系统分隔符
print("当前文件夹绝对路径:", current_floder_path)

with open(current_floder_path+'ReplyAttackGeNFile.txt','w',encoding = 'utf-8') as f:
    f.write("🟢 第一次响应:\n")
    f.write("状态码:" + str(response1.status_code))
    f.write('\n')
    f.write("返回数据:" + str(response1.text))
    f.write('\n')
    f.write('\n')
    f.write("\n🔴 第二次响应（重放攻击模拟）: \n")
    f.write("状态码:" + str(response2.status_code))
    f.write('\n')
    f.write("返回数据:" + str(response2.text))
    f.write('\n')


